package org.one.afternoon.utils;

import java.util.ArrayList;
import java.util.List;

public class Splitter {

    public static void main(String[] args) {
        String text = "1. **历史沿革**：该学院的前身是1960年创建的温州动力机厂技工学校，后经过多次更名和发展，于1999年由浙江第一高级技工学校与温州冶金机械厂联合改制成立。\n" +
                "2. **主管单位**：学院的主管单位是世界500强企业杭州钢铁集团有限公司，这为学院的发展提供了坚实的支持。\n" +
                "3. **地理位置**：学院位于浙江省温州市，拥有鹿城府东路校区和瓯江口校区两个校区，总占地面积约为1235亩。\n" +
                "4. **学生与师资**：全日制在校学生人数超过1.5万，教职工700余人，形成了较为庞大的教学群体。\n" +
                "5. **专业设置**：学院现设有光电制造学院、人工智能学院、设计与数字艺术学院等多个二级学院，开设有38个专业，涵盖了光电制造与应用技术、人工智能、眼视光技术、电子商务等多个领域。\n" +
                "6. **荣誉成就**：学院曾获得“全国职业教育先进单位”、“首批全国创新创业典型经验高校50强”等荣誉称号，并被确立为教育部现代学徒制试点单位、浙江省示范性高等职业院校。\n" +
                "7. **文化建设**：学院注重大学生的人文素养培养，积极参与举办中华经典诵读竞赛等活动，以弘扬中华优秀文化。";
        String[] splitter = Splitter.Splitter(text, 75);
        for (String s : splitter) {
            System.out.println(s);
        }
    }


    public static String[] Splitter(String text, int maxTextLength) {

        text = text.replace("\n", "");
        String[] first = text.split("。");
        List<String> result = new ArrayList<>();

        for (String f : first) {
            if (f.length() > maxTextLength) {
                String[] second = f.split("：");
                for (String s : second) {
                    if (s.length() > maxTextLength) {
                        String[] third = s.split("，");
                        for (String t : third) {
                            if (t.length() > maxTextLength) {
                                int middle = t.length() / 2;
                                result.add(t.substring(0, middle));
                                result.add(t.substring(middle));
                            } else {
                                result.add(t);
                            }
                        }
                    } else {
                        result.add(s);
                    }
                }
            } else {
                result.add(f);
            }
        }
        return result.toArray(new String[0]);
    }
}
